package spring.mvc.web.test.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@ComponentScan("spring.mvc.web.test")
public class Swagger2Config {

        @Bean
        public Docket createAPI() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .forCodeGeneration(true)
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    //过滤生成链接
                    .paths(PathSelectors.any())
                    .build()
                    .apiInfo(apiInfo());
        }

        private ApiInfo apiInfo() {
            Contact contact = new Contact("jerry", "http://baidu.com"
                    , "jerry@163.com");
            ApiInfo apiInfo = new ApiInfoBuilder()
                    .license("Apache License Version 2.0")
                    .title("Swagger 集成测试")
                    .description("Swagger API Teste")
                    .contact(contact)
                    .version("1.0")
                    .build();
            return apiInfo;
        }

    }

